// 创建枚举对象，用于界面显示转换
type configType = {
  dictValue?: string
  dictLabel?: string
}
type labelType = number | string
type valueType = any
type enumsType = {
  label: labelType
  value: valueType
  [key: string | number]: any
}
export function createEnumObject(enums: enumsType[], config?: configType) {
  let labels: labelType[] = []
  let values: valueType[] = []
  return {
    getLabels() {
      if (!labels || labels.length === 0) {
        labels = enums.map((item) => item[config?.dictLabel || 'label'])
      }
      return labels
    },
    getValues() {
      if (!values || labels.length === 0) {
        values = enums.map((item) => item[config?.dictValue || 'value'])
      }
      return values
    },
    getLabel(value: valueType) {
      let index = this.getValues().indexOf(value)
      if (index > -1) {
        return this.getLabels()[index]
      }
    },
    getValue(label: labelType) {
      let index = this.getLabels().indexOf(label)
      if (index > -1) {
        return this.getValues()[index]
      }
    },
    getItem(valueOrLabel: labelType | valueType) {
      let index = this.getValues().indexOf(valueOrLabel)
      console.log('index', index)

      if (index < 0) {
        index = this.getLabels().indexOf(valueOrLabel)
      }
      if (index > -1) {
        return enums[index]
      }
    }
  }
}
